/*
 * @Author: wrdoct llw18729357726@163.com
 * @Date: 2025-04-19 15:52:26
 * @LastEditors: wrdoct llw18729357726@163.com
 * @LastEditTime: 2025-04-19 15:52:50
 * @FilePath: /c-study/dup2_test.cpp
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <fcntl.h>  // 包含 open 函数的头文件
#include <unistd.h> // 包含 dup2 和 write 函数的头文件
#include <stdio.h>  // 包含 printf 和 exit 函数的头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>

int main()
{
    int fd = open("pp.txt", O_CREAT | O_RDWR, 0744); // 打开文件，如果不存在则创建
    if (fd == -1)
    { // 检查文件是否成功打开
        printf("open failed!\n");
        exit(1); // 如果打开失败，退出程序
    }

    dup2(fd, STDOUT_FILENO); // 将文件描述符 fd 复制到标准输出的位置。这样，所有写入标准输出的数据都会被重定向到 pp.txt 文件中。

    // 操作标准输出
    write(STDOUT_FILENO, "bai ge", 6); // 向标准输出写入字符串 "bai ge"

    return 0;
}